#ifndef __GAMEHACK_GAMEHACK_H__
#define __GAMEHACK_GAMEHACK_H__
#include <windows.h>
#include "singleton.hpp"
#include "../tcc-0.9.26/libtcc.h"

class GameHack :public core::Singleton<GameHack>
{
	friend core::Singleton<GameHack>;
private:
	GameHack()
		: self_hadle_(NULL), is_initialized_(false), tcc_(NULL)
	{}
	~GameHack()
	{}
public:
	bool Initialize(HINSTANCE dll_hanlde);
	void Finalize();
private:
	bool InitScriptEngine();
	void ProcessCmd(std::string& cmd);
private:
	HINSTANCE self_hadle_;
	bool is_initialized_;
	TCCState *tcc_;
};
#define sGameHack GameHack::GetInstance()
#endif//__GAMEHACK_GAMEHACK_H__